/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <memory>
#include <sstream>
#include <common/UriInfo.h>
#include "arrow/filesystem/localfs.h"
#include "arrow/util/io_util.h"
#include "LocalfsAdapter.h"
#include "arrow/result.h"

namespace arrow_adapter {

    using ::arrow::internal::IOErrorFromErrno;
    using ::arrow::internal::NativePathString;
    using ::arrow::internal::PlatformFilename;
    using arrow::Result;
    using arrow::fs::LocalFileSystemOptions;
    using arrow::Status;

    Result<LocalFileSystemOptions> buildLocalfsOptionsFromUri(const UriInfo &uri, std::string *out_path) {
        std::string path;
        const auto host = uri.Host();
        if (!host.empty()) {
            return Status::Invalid("Unsupported hostname in non-Windows local URI: '",
                                   uri.ToString(), "'");
        } else {
            *out_path = uri.Path();
        }

        return LocalFileSystemOptions();
    }

}
// namespace arrow